package org.xlp.db.xml;

import org.xlp.db.tableoption.xlpenum.DBType;
import org.xlp.db.utils.DBTypeUtils;

import java.lang.reflect.Constructor;

/**
 * Description: XmlSQL构造函数获取工具类
 * <br/>date: 2025/3/30
 *
 * @version 1.0
 * @author: xlp
 */
public class XmlSQLConstructorUtils {
    /**
     * 根据构造函数参数类型获取XmlSQL的构造函数
     * @param parameterClasses 构造函数参数类型
     * @return
     * @throws NoSuchMethodException 假如获取构造函数失败，则抛出该异常
     */
    @SuppressWarnings("all")
    public static Constructor<? extends XmlSQL> getXmlSQLConstructor(Class<?>[] parameterClasses)
            throws NoSuchMethodException {
        if (DBTypeUtils.getDbType() != DBType.ORACLE_DB){
            return XmlSQLForMYSQL.class.getConstructor(parameterClasses);
        }
        return XmlSQLForOracle.class.getConstructor(parameterClasses);
    }
}
